В самом конце перед завершение работы программы необходимо удалить ссылки на все используемые объекты. Можно конечно просто удалить ссылку на объект DirectInput который в свою очередь освободит все используемые объекты, но вот лучше все делать самом что бы не путаться с захватами устройств.
Visual Basic Освобождаем захват и объект DirectInput Освобождаем захват и объекты DirectInput
Visual C++
Visual Basic
Private Sub Form_Terminate()
dmmouse.Unacquire
Set dmmouse = Nothing
Set dri = Nothing
End Sub
Visual C++
void CDImputDlg::OnDestroy()
{
HRESULT hr;
hr=g_pMouse->Unacquire();
if FAILED(hr)
{
ASSERT(FALSE);
}
g_pMouse->Release();
g_pDI->Release();
KillTimer(ID_TIMER_1);
CDialog::OnDestroy();
// TODO: Add your message handler code here
}